package com.dragon.mmochat.model.enumType;

import com.dragon.mmochat.model.skill.MmochatSkill;

//key, 类型, 门派, 动画类型,介绍
//注：一旦发版,如果此enum会存到数据库，则此类型只能增加,不能减少或修改名字
public enum MmochatSkillType {
	/*************************** 阐教 ***************************/
	// ----------攻击
	雷电交加(0, "ldjj", MmochatSkill.攻击技能, MmochatFamilyType.阐教,
			MmochatActionType.阐教一阶攻击技能,
			"一阶雷系法术。对敌方使用，使对手受到一定的雷系伤害。技能等级越高，伤害越大。", 1),

	飞云掣电(
			1,
			"fycd",
			MmochatSkill.攻击技能,
			MmochatFamilyType.阐教,
			MmochatActionType.阐教二阶攻击技能,
			"二阶雷系法术。对敌方使用，使对手受到一定的雷系伤害。技能等级越高，伤害越大。技能等级达到41级时，目标数升为2个。要求雷电交加技能达到满级才可以学习。",
			2),

	电闪雷鸣(
			2,
			"dslm",
			MmochatSkill.攻击技能,
			MmochatFamilyType.阐教,
			MmochatActionType.阐教三阶攻击技能,
			"三阶雷系法术。对敌方使用，使对手受到一定的雷系伤害。技能等级越高，伤害越大。技能等级达到41级、81级时，目标数分别升为2个、3个。要求飞云掣电技能达到满级才可以学习。",
			3),

	雷霆万钧(
			3,
			"ltwj",
			MmochatSkill.攻击技能,
			MmochatFamilyType.阐教,
			MmochatActionType.阐教四阶攻击技能,
			"四阶雷系法术。对敌方使用，使对手受到一定的雷系伤害。技能等级越高，伤害越大。技能等级达到41级、81级、121级时，目标数分别升为2个、3个、4个。要求电闪雷鸣技能达到满级才可以学习。",
			4),

	五雷轰顶(
			4,
			"wlhd",
			MmochatSkill.攻击技能,
			MmochatFamilyType.阐教,
			MmochatActionType.阐教五阶攻击技能,
			"五阶雷系法术。对敌方使用，使对手受到一定的雷系伤害。技能等级越高，伤害越大。技能等级达到41级、81级、121级、161级时，目标数分别升为2个、3个、4个、5个。要求雷霆万钧技能达到满级才可以学习。",
			5),

	// ----------障碍
	流连忘返(10, "llwf", MmochatSkill.障碍技能, MmochatFamilyType.阐教,
			MmochatActionType.阐教一阶限制技能,
			"一阶封印技能。对敌方使用，成功后可令对手处于封印状态。封印成功率主要由道行决定。", 1),

	乐不思蜀(
			11,
			"lbss",
			MmochatSkill.障碍技能,
			MmochatFamilyType.阐教,
			MmochatActionType.阐教二阶限制技能,
			"二阶封印技能。对敌方使用，成功后可令对手处于封印状态。封印成功率主要由道行决定。技能等级达到41级时，目标数升为2个。要求流连忘返技能达到满级才可以学习。",
			2),

	恍如隔世(
			12,
			"hrgs",
			MmochatSkill.障碍技能,
			MmochatFamilyType.阐教,
			MmochatActionType.阐教三阶限制技能,
			"三阶封印技能。对敌方使用，成功后可令对手处于封印状态。封印成功率主要由道行决定。技能等级达到41级、81级时，目标数分别升为2个、3个。要求乐不思蜀技能达到满级才可以学习。",
			3),

	如隔三秋(
			13,
			"rgsq",
			MmochatSkill.障碍技能,
			MmochatFamilyType.阐教,
			MmochatActionType.阐教四阶限制技能,
			"四阶封印技能。对敌方使用，成功后可令对手处于封印状态。封印成功率主要由道行决定。技能等级达到41级、81级、121级时，目标数分别升为2个、3个、4个。要求恍如隔世技能达到满级才可以学习。",
			4),

	遗忘今生(
			14,
			"ywjs",
			MmochatSkill.障碍技能,
			MmochatFamilyType.阐教,
			MmochatActionType.阐教五阶限制技能,
			"五阶封印技能。对敌方使用，成功后可令对手处于封印状态。封印成功率主要由道行决定。技能等级达到41级、81级、121级、161级时，目标数分别升为2个、3个、4个、5个。要求如隔三秋技能达到满级才可以学习。",
			5),

	// ----------辅助:增加速度的效果
	健步如飞(20, "jbrf", MmochatSkill.辅助技能, MmochatFamilyType.阐教,
			MmochatActionType.阐教一阶辅助技能, "一阶加速技能。能提升自己或队友一定的速度。技能等级越高，效果越强。", 1),

	大步流星(
			21,
			"dblx",
			MmochatSkill.辅助技能,
			MmochatFamilyType.阐教,
			MmochatActionType.阐教二阶辅助技能,
			"二阶加速技能。能提升自己或队友一定的速度。技能等级越高，效果越强。技能等级达到41级时，目标数升为2个。要求健步如飞技能达到满级才可以学习。",
			2),

	举步生风(
			22,
			"jbsf",
			MmochatSkill.辅助技能,
			MmochatFamilyType.阐教,
			MmochatActionType.阐教三阶辅助技能,
			"三阶加速技能。能提升自己或队友一定的速度。技能等级越高，效果越强。技能等级达到41级、81级时，目标数分别升为2个、3个。要求大步流星技能达到满级才可以学习。",
			3),

	一瞬千里(
			23,
			"ysql",
			MmochatSkill.辅助技能,
			MmochatFamilyType.阐教,
			MmochatActionType.阐教四阶辅助技能,
			"四阶加速技能。能提升自己或队友一定的速度。技能等级越高，效果越强。技能等级达到41级、81级、121级时，目标数分别升为2个、3个、4个。要求举步生风技能达到满级才可以学习。",
			4),

	风驰电掣(
			24,
			"fcdc",
			MmochatSkill.辅助技能,
			MmochatFamilyType.阐教,
			MmochatActionType.阐教五阶辅助技能,
			"五阶加速技能。能提升自己或队友一定的速度。技能等级越高，效果越强。技能等级达到41级、81级、121级、161级时，目标数分别升为2个、3个、4个、5个。转生后技能等级突破180级，目标数和效果继续提升。要求一瞬千里技能达到满级才可以学习。",
			5),

	/*************************** 截教 ***************************/
	// ----------攻击
	焚心蚀骨(30, "fxsg", MmochatSkill.攻击技能, MmochatFamilyType.截教,
			MmochatActionType.截教一阶攻击技能,
			"一阶毒系法术。对敌方使用，使对手受到一定的毒系伤害。技能等级越高，伤害越大。", 1),

	毒龙双飞(
			31,
			"dlsf",
			MmochatSkill.攻击技能,
			MmochatFamilyType.截教,
			MmochatActionType.截教二阶攻击技能,
			"二阶毒系法术。对敌方使用，使对手受到一定的毒系伤害。技能等级越高，伤害越大。技能等级达到41级时，目标数升为2个。要求焚心蚀骨技能达到满级才可以学习。",
			2),

	毒火攻心(
			32,
			"dhgx",
			MmochatSkill.攻击技能,
			MmochatFamilyType.截教,
			MmochatActionType.截教三阶攻击技能,
			"三阶毒系法术。对敌方使用，使对手受到一定的毒系伤害。技能等级越高，伤害越大。技能等级达到41级、81级时，目标数分别升为2个、3个。要求毒龙双飞技能达到满级才可以学习。",
			3),

	毒霸天下(
			34,
			"dbtx",
			MmochatSkill.攻击技能,
			MmochatFamilyType.截教,
			MmochatActionType.截教四阶攻击技能,
			"四阶毒系法术。对敌方使用，使对手受到一定的毒系伤害。技能等级越高，伤害越大。技能等级达到41级、81级、121级时，目标数分别升为2个、3个、4个。要求毒火攻心技能达到满级才可以学习。",
			4),

	五毒缠身(
			35,
			"wdcs",
			MmochatSkill.攻击技能,
			MmochatFamilyType.截教,
			MmochatActionType.截教五阶攻击技能,
			"五阶毒系法术。对敌方使用，使对手受到一定的毒系伤害。技能等级越高，伤害越大。技能等级达到41级、81级、121级、161级时，目标数分别升为2个、3个、4个、5个。要求毒霸天下技能达到满级才可以学习。",
			5),

	// ----------障碍
	精神虚弱(40, "jsxr", MmochatSkill.障碍技能, MmochatFamilyType.截教,
			MmochatActionType.截教一阶限制技能,
			"一阶混乱技能。对敌方使用，成功后可令对手处于混乱状态。封印成功率主要由道行决定。", 1),

	灵魂盾击(
			41,
			"lhdj",
			MmochatSkill.障碍技能,
			MmochatFamilyType.截教,
			MmochatActionType.截教二阶限制技能,
			"二阶混乱技能。对敌方使用，成功后可令对手处于混乱状态。封印成功率主要由道行决定。技能等级达到41级时，目标数升为2个。要求精神虚弱技能达到满级才可以学习。",
			2),

	精神风暴(
			42,
			"jsfb",
			MmochatSkill.障碍技能,
			MmochatFamilyType.截教,
			MmochatActionType.截教三阶限制技能,
			"三阶混乱技能。对敌方使用，成功后可令对手处于混乱状态。封印成功率主要由道行决定。技能等级达到41级、81级时，目标数分别升为2个、3个。要求灵魂盾击技能达到满级才可以学习。",
			3),

	灵魂爆炸(
			43,
			"lhbz",
			MmochatSkill.障碍技能,
			MmochatFamilyType.截教,
			MmochatActionType.截教四阶限制技能,
			"四阶混乱技能。对敌方使用，成功后可令对手处于混乱状态。封印成功率主要由道行决定。技能等级达到41级、81级、121级时，目标数分别升为2个、3个、4个。要求精神风暴技能达到满级才可以学习。",
			4),

	精神燃烧(
			44,
			"jsrs",
			MmochatSkill.障碍技能,
			MmochatFamilyType.截教,
			MmochatActionType.截教五阶限制技能,
			"五阶混乱技能。对敌方使用，成功后可令对手处于混乱状态。封印成功率主要由道行决定。技能等级达到41级、81级、121级、161级时，目标数分别升为2个、3个、4个、5个。要求灵魂爆炸技能达到满级才可以学习。",
			5),

	// ----------辅助:增加攻击的效果
	锐不可当(50, "rbkd", MmochatSkill.辅助技能, MmochatFamilyType.截教,
			MmochatActionType.截教一阶辅助技能, "一阶加攻技能。能提升自己或队友一定的物伤和法伤。技能等级越高，效果越强。",
			1),

	浴血奋战(
			51,
			"yxfz",
			MmochatSkill.辅助技能,
			MmochatFamilyType.截教,
			MmochatActionType.截教二阶辅助技能,
			"二阶加攻技能。能提升自己或队友一定的物伤和法伤。技能等级越高，效果越强。技能等级达到41级时，目标数升为2个。要求锐不可当技能达到满级才可以学习。",
			2),

	破釜沉舟(
			52,
			"pfcz",
			MmochatSkill.辅助技能,
			MmochatFamilyType.截教,
			MmochatActionType.截教三阶辅助技能,
			"三阶加攻技能。能提升自己或队友一定的物伤和法伤。技能等级越高，效果越强。技能等级达到41级、81级时，目标数分别升为2个、3个。要求浴血奋战技能达到满级才可以学习。",
			3),

	横扫千军(
			53,
			"hsqj",
			MmochatSkill.辅助技能,
			MmochatFamilyType.截教,
			MmochatActionType.截教四阶辅助技能,
			"四阶加攻技能。能提升自己或队友一定的物伤和法伤。技能等级越高，效果越强。技能等级达到41级、81级、121级时，目标数分别升为2个、3个、4个。要求破釜沉舟技能达到满级才可以学习。",
			4),

	战无不克(
			54,
			"zwbk",
			MmochatSkill.辅助技能,
			MmochatFamilyType.截教,
			MmochatActionType.截教五阶辅助技能,
			"五阶加攻技能。能提升自己或队友一定的物伤和法伤。技能等级越高，效果越强。技能等级达到41级、81级、121级、161级时，目标数分别升为2个、3个、4个、5个。转生后技能等级突破180级，目标数和效果继续提升。要求横扫千军技能达到满级才可以学习。",
			5),

	/*************************** 人教 ***************************/
	// ----------攻击
	寒冰利剑(60, "hblj", MmochatSkill.攻击技能, MmochatFamilyType.人教,
			MmochatActionType.人教一阶攻击技能,
			"一阶水系法术。对敌方使用，使对手受到一定的水系伤害。技能等级越高，伤害越大。", 1),

	水漫金山(
			61,
			"smjs",
			MmochatSkill.攻击技能,
			MmochatFamilyType.人教,
			MmochatActionType.人教二阶攻击技能,
			"二阶水系法术。对敌方使用，使对手受到一定的水系伤害。技能等级越高，伤害越大。技能等级达到41级时，目标数升为2个。要求寒冰利剑技能达到满级才可以学习。",
			2),

	九幽弱水(
			62,
			"jyrs",
			MmochatSkill.攻击技能,
			MmochatFamilyType.人教,
			MmochatActionType.人教三阶攻击技能,
			"三阶水系法术。对敌方使用，使对手受到一定的水系伤害。技能等级越高，伤害越大。技能等级达到41级、81级时，目标数分别升为2个、3个。要求水漫金山技能达到满级才可以学习。",
			3),

	天河倾泻(
			63,
			"thqx",
			MmochatSkill.攻击技能,
			MmochatFamilyType.人教,
			MmochatActionType.人教四阶攻击技能,
			"四阶水系法术。对敌方使用，使对手受到一定的水系伤害。技能等级越高，伤害越大。技能等级达到41级、81级、121级时，目标数分别升为2个、3个、4个。要求九幽弱水技能达到满级才可以学习。",
			4),

	冥河黑水(
			64,
			"mhhs",
			MmochatSkill.攻击技能,
			MmochatFamilyType.人教,
			MmochatActionType.人教五阶攻击技能,
			"五阶水系法术。对敌方使用，使对手受到一定的水系伤害。技能等级越高，伤害越大。技能等级达到41级、81级、121级、161级时，目标数分别升为2个、3个、4个、5个。要求天河倾泻技能达到满级才可以学习。",
			5),
	// ----------障碍
	冰霜封印(70, "bsfy", MmochatSkill.障碍技能, MmochatFamilyType.人教,
			MmochatActionType.人教一阶限制技能,
			"一阶冰冻技能。对敌方使用，成功后可令对手处于冰冻状态。封印成功率主要由道行决定。", 1),

	双龙冰印(
			71,
			"slby",
			MmochatSkill.障碍技能,
			MmochatFamilyType.人教,
			MmochatActionType.人教二阶限制技能,
			"二阶冰冻技能。对敌方使用，成功后可令对手处于冰冻状态。封印成功率主要由道行决定。技能等级达到41级时，目标数升为2个。要求冰霜封印技能达到满级才可以学习。",
			2),

	寒冰领域(
			72,
			"hbly",
			MmochatSkill.障碍技能,
			MmochatFamilyType.人教,
			MmochatActionType.人教三阶限制技能,
			"三阶冰冻技能。对敌方使用，成功后可令对手处于冰冻状态。封印成功率主要由道行决定。技能等级达到41级、81级时，目标数分别升为2个、3个。要求双龙冰印技能达到满级才可以学习。",
			3),

	冰冻天下(
			73,
			"bdtx",
			MmochatSkill.障碍技能,
			MmochatFamilyType.人教,
			MmochatActionType.人教四阶限制技能,
			"四阶冰冻技能。对敌方使用，成功后可令对手处于冰冻状态。封印成功率主要由道行决定。技能等级达到41级、81级、121级时，目标数分别升为2个、3个、4个。要求寒冰领域技能达到满级才可以学习。",
			4),

	永恒国度(
			74,
			"yhgd",
			MmochatSkill.障碍技能,
			MmochatFamilyType.人教,
			MmochatActionType.人教五阶限制技能,
			"五阶冰冻技能。对敌方使用，成功后可令对手处于冰冻状态。封印成功率主要由道行决定。技能等级达到41级、81级、121级、161级时，目标数分别升为2个、3个、4个、5个。要求冰冻天下技能达到满级才可以学习。",
			5),
	// ----------辅助:增加防御的效果
	钢筋铁骨(80, "gjtg", MmochatSkill.辅助技能, MmochatFamilyType.人教,
			MmochatActionType.人教一阶辅助技能, "一阶加防技能。能提升自己或队友一定的物防和法防。技能等级越高，效果越强。",
			1),

	牢不可破(
			81,
			"lbkp",
			MmochatSkill.辅助技能,
			MmochatFamilyType.人教,
			MmochatActionType.人教二阶辅助技能,
			"二阶加防技能。能提升自己或队友一定的物防和法防。技能等级越高，效果越强。技能等级达到41级时，目标数升为2个。要求钢筋铁骨技能达到满级才可以学习。",
			2),

	坚不可摧(
			82,
			"jbkc",
			MmochatSkill.辅助技能,
			MmochatFamilyType.人教,
			MmochatActionType.人教三阶辅助技能,
			"三阶加防技能。能提升自己或队友一定的物防和法防。技能等级越高，效果越强。技能等级达到41级、81级时，目标数分别升为2个、3个。要求牢不可破技能达到满级才可以学习。",
			3),

	无懈可击(
			83,
			"wxkj",
			MmochatSkill.辅助技能,
			MmochatFamilyType.人教,
			MmochatActionType.人教四阶辅助技能,
			"四阶加防技能。能提升自己或队友一定的物防和法防。技能等级越高，效果越强。技能等级达到41级、81级、121级时，目标数分别升为2个、3个、4个。要求坚不可摧技能达到满级才可以学习。",
			4),

	固若金汤(
			84,
			"grjt",
			MmochatSkill.辅助技能,
			MmochatFamilyType.人教,
			MmochatActionType.人教五阶辅助技能,
			"五阶加防技能。能提升自己或队友一定的物防和法防。技能等级越高，效果越强。技能等级达到41级、81级、121级、161级时，目标数分别升为2个、3个、4个、5个。转生后技能等级突破180级，目标数和效果继续提升。要求无懈可击技能达到满级才可以学习。",
			5);

	private int key;
	private String shortName;
	private MmochatActionType actionType;
	private String info;
	private int skillType; // 0:攻击技能；1:障碍技能；2:辅助技能
	private MmochatFamilyType skillFamily;
	private int maxTargetNum; // 最大目标数
	private int maxLevel = 0; // 最大技能等级

	MmochatSkillType(int key, String shortName, int skillType,
			MmochatFamilyType skillFamily, MmochatActionType type, String info,
			int maxTargetNum) {
		this.key = key;
		this.shortName = shortName;
		this.skillType = skillType;
		this.skillFamily = skillFamily;
		this.actionType = type;
		this.info = info;
		this.maxTargetNum = maxTargetNum;
	}

	public static MmochatSkillType get(int key) {
		for (MmochatSkillType type : MmochatSkillType.values()) {
			if (type.getKey() == key) {
				return type;
			}
		}
		return null;
	}

	public static MmochatSkillType get(MmochatActionType actionType) {
		for (MmochatSkillType type : MmochatSkillType.values()) {
			if (type.getActionType() == actionType) {
				return type;
			}
		}
		return null;
	}

	public MmochatActionType getActionType() {
		return actionType;
	}

	public String getInfo() {
		return info;
	}

	public int getSkillType() {
		return skillType;
	}

	public MmochatFamilyType getSkillFamily() {
		return skillFamily;
	}

	public int getKey() {
		return key;
	}

	public int getMaxTargetNum() {
		return maxTargetNum;
	}

	public int getMaxLevel() {
		return maxLevel;
	}

	public void setMaxLevel(int maxLevel) {
		this.maxLevel = maxLevel;
	}

	public String getShortName() {
		return shortName;
	}

	// 获取前置技能
	public static MmochatSkillType getPreSkill(MmochatSkillType curSkill) {
		switch (curSkill) {
		/*************************** 阐教 ***************************/
		// ----------攻击
		case 雷电交加:
			break;
		case 飞云掣电:
			return MmochatSkillType.雷电交加;
		case 电闪雷鸣:
			return MmochatSkillType.飞云掣电;
		case 雷霆万钧:
			return MmochatSkillType.电闪雷鸣;
		case 五雷轰顶:
			return MmochatSkillType.雷霆万钧;

			// ----------障碍
		case 流连忘返:
			break;
		case 乐不思蜀:
			return MmochatSkillType.流连忘返;
		case 恍如隔世:
			return MmochatSkillType.乐不思蜀;
		case 如隔三秋:
			return MmochatSkillType.恍如隔世;
		case 遗忘今生:
			return MmochatSkillType.如隔三秋;

			// ----------辅助:增加速度的效果
		case 健步如飞:
			break;
		case 大步流星:
			return MmochatSkillType.健步如飞;
		case 举步生风:
			return MmochatSkillType.大步流星;
		case 一瞬千里:
			return MmochatSkillType.举步生风;
		case 风驰电掣:
			return MmochatSkillType.一瞬千里;

			/*************************** 截教 ***************************/
			// ----------攻击
		case 焚心蚀骨:
			break;
		case 毒龙双飞:
			return MmochatSkillType.焚心蚀骨;
		case 毒火攻心:
			return MmochatSkillType.毒龙双飞;
		case 毒霸天下:
			return MmochatSkillType.毒火攻心;
		case 五毒缠身:
			return MmochatSkillType.毒霸天下;

			// ----------障碍
		case 精神虚弱:
			break;
		case 灵魂盾击:
			return MmochatSkillType.精神虚弱;
		case 精神风暴:
			return MmochatSkillType.灵魂盾击;
		case 灵魂爆炸:
			return MmochatSkillType.精神风暴;
		case 精神燃烧:
			return MmochatSkillType.灵魂爆炸;

			// ----------辅助:增加攻击的效果
		case 锐不可当:
			break;
		case 浴血奋战:
			return MmochatSkillType.锐不可当;
		case 破釜沉舟:
			return MmochatSkillType.浴血奋战;
		case 横扫千军:
			return MmochatSkillType.破釜沉舟;
		case 战无不克:
			return MmochatSkillType.横扫千军;

			/*************************** 人教 ***************************/
			// ----------攻击
		case 寒冰利剑:
			break;
		case 水漫金山:
			return MmochatSkillType.寒冰利剑;
		case 九幽弱水:
			return MmochatSkillType.水漫金山;
		case 天河倾泻:
			return MmochatSkillType.九幽弱水;
		case 冥河黑水:
			return MmochatSkillType.天河倾泻;

			// ----------障碍
		case 冰霜封印:
			break;
		case 双龙冰印:
			return MmochatSkillType.冰霜封印;
		case 寒冰领域:
			return MmochatSkillType.双龙冰印;
		case 冰冻天下:
			return MmochatSkillType.寒冰领域;
		case 永恒国度:
			return MmochatSkillType.冰冻天下;

			// ----------辅助:增加防御的效果
		case 钢筋铁骨:
			break;
		case 牢不可破:
			return MmochatSkillType.钢筋铁骨;
		case 坚不可摧:
			return MmochatSkillType.牢不可破;
		case 无懈可击:
			return MmochatSkillType.坚不可摧;
		case 固若金汤:
			return MmochatSkillType.无懈可击;
		}
		return null;
	}

	// 根据短名称获取技能
	public static MmochatSkillType getSkillByShortName(String sName) {
		for (MmochatSkillType skill : MmochatSkillType.values()) {
			if (skill.getShortName().equals(sName)) {
				return skill;
			}
		}
		return null;
	}
}
